Python defaultdict 是 collections 模組中的一個功能豐富的字典變體。它解決了在訪問字典中不存在的鍵時引發的KeyError異常問題,並提供了一種方式來處理缺失鍵。
基本介紹
要使用defaultdict,首先需要導入collections模組:
from collections import defaultdict
接下來,您可以創建一個defaultdict物件,並指定一個預設工廠函數(default factory function)。該預設工廠函數將決定當您訪問不存在的鍵時返回什麼值。
舉例:創建一個defaultdict,預設值為int類型的0
default_dict = defaultdict(int)
count = default_dict['non_existent_key'] # 返回0,而不是引發KeyError
現在,當您嘗試訪問不存在的鍵時,它會返回預設值,而不會引發異常:
更多應用:
defaultdict的預設工廠函數也可以是其他內建資料型別,例如list、set或lambda函數等,以實現更複雜的用途。
from collections import defaultdict
# 使用list作為預設工廠函數,創建一個defaultdict
default_dict = defaultdict(list)
# 添加元素到defaultdict
default_dict['fruits'].append('apple')
default_dict['fruits'].append('banana')
default_dict['fruits'].append('orange')
print(default_dict['fruits']) # 輸出: ['apple', 'banana', 'orange']
# 使用set作為預設工廠函數,創建一個defaultdict
default_dict = defaultdict(set)
# 添加元素到defaultdict
default_dict['colors'].add('red')
default_dict['colors'].add('green')
default_dict['colors'].add('blue')
print(default_dict['colors']) # 輸出: {'blue', 'green', 'red'}
總結:
Python defaultdict 是一個強大的工具,可幫助您更有效地處理字典中的缺失鍵,並提供了更多彈性的方式來處理數據。不僅它簡化了程式碼,還能提高程式的可讀性。
參考資料:https://docs.python.org/3/library/collections.html#collections.defaultdict